home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload Trio 2
/
Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO
/
dir24
/
bpq408.zip
/
DRIVERS.DOC
< prev
next >
Wrap
Text File
|
1993-04-25
|
19KB
|
552 lines
G8BPQ Switch Driver Programs.
This file documents the driver programs provided with the switch. They fall
into two categories, programs to interface to external hardware not supported
directly by the switch, and programs to interface application software to
the switch.
Hardware Drivers.
These programs use the EXTERNAL port interface (see EXTERNAL.DOC). This
interface was provided primarily to allow users to write their own hardware
drivers, but I have started to use it to support hardware which is likely to
be only of minority interest, so dont justify occupying memory unless required.
So far there is only one driver in this category.
ODIDRV
This program allows switches to be linked via Ethernet. The software runs
over the Novell ODI interface, so should work with any Ethernet card for
which an ODI driver is available.
Application Software Drivers.
From Version 4.00, the application interface to the switch has been changed.
The new interface is called BPQ Host Mode (see BPQHOST.DOC for full details).
Some software is available for the new interface (eg F6FBB BBS, TERM4), but,
in order to support older software, and to provide new facilities, a number
of drivers have been written. These are TSR's, which are loaded after BPQCODE.
The drivers supplied with 4.06 are detailed below:
BPQHTNC2
This provides the COMBIOS/TNC2 emulation, as used by W0RLI and G1NNA
BBS's (amongst others), and various Terminal Programs (YAPPB, PAC2 etc).
BPQHKISS
This provides the COMBIOS/KISS emulation. This was used for the NET
TCP/IP interface, and for programs like STATS and TLMDC (the Satellite
telemetry decode program).
DEDHOST
This provides an emulation of the WA8DED Host Mode driver used with DRSI
cards (TNCTSR). It is used for PacketCluster and AA4RE BBS.
NODEDRV4
This is used to interface the NOS TCP/IP package to the switch. It conforms
to the PacketDriver interface spec.
Full details of the above drivers are given below:
ODIDRV - Ethernet Interface
This driver allows two or more switches to be linked via Ethernet. The driver
uses the ODI system to interface to the ethernet card. A working knowledge
of ODI is assumed in this document.
The driver has one parameter, the software interrupt to be used by the
switch to communicate with the driver. This must match the INTLEVEL param
in BPQCFG.TXT. The number is specified in decimal in both places:
ODIDRV 125
By default, the system uses a multicast address of 01:42:50:51:0:0, and
I recommend the use of ETHERNET_II frame type, and PID=08FF. These can
all be overridden by parameters in NET.CFG
NET.CFG Params:
LINK SUPPORT
MAX STACKS 4
MAX BOARDS 4
LINK DRIVER NE1000 ; or other MLID to suit your card
INT 2 ;
PORT 300 ; to suit your card
FRAME ETHERNET_802.2 ; may not need all these
FRAME ETHERNET_II
FRAME ETHERNET_802.3
FRAME ETHERNET_SNAP
PROTOCOL IPX 0 ETHERNET_802.3 ; if you want to use Netware as well
PROTOCOL BPQ 8FF ETHERNET_II ; required for BPQ - can change PID
BPQPARAMS ; optional - only needed if you want
; to override the default target addr
ETH_ADDR 00:80:C7:4A:97:03 ; Target address. See below
By default, the system uses multicasts. This simplifies configuration, and
allows several nodes to communicate. If you only have two nodes you can
improve efficiency marginally by specifying the hardware address of the
other ethernet card. You can also specify the broadcast address
(ff:ff:ff:ff:ff:ff). This may be necessary if your MLID doesnt support
multicast.
I havnt found any problem using a PID of 8FF, but you can change this if
necessary.
TNC2 Emulation routine - BPQHTNC2
This program provides the application interface for TNC2 applications
on switch version 4.05 and above. BPQHTNC2 should be loaded after the switch.
If only a single program uses the TNC2 interface, (eg NNA), it may be loaded
in the programs's Desqview window, but if it is used by more than
one program (eg RLI, or utilites such as PAC2, BPQTERM, MH), it should be
laoded before Desqview. If in doubt, load it before DV.
The program may be called in two ways. If called without any paramters, it
will use the TNCPORT information from BPQCFG.BIN, and use BPQHOST ports 33
upwards. This should be adequate for the great majority of applications.
Alternatively it is possible to supply 3 parameters, the number of TNC2 ports
required, the first COMBIOS port required, and the first BPQHost port to use.
This will only be necessary if you want to use more than 16 TNCPORTS, or if
you are already using BPQHOST ports above 33.
For example,
To use the ports defined in BPQCFG.TXT (ie to be the same as earlier versions)
BPQHTNC2
To create COM1-COM18, enter:
BPQHTNC2 18 1 1
For COM2-COM5
BPQHTNC2 4 2 1
A single copy of BPQHTNC2 can only support a contiguous set of COM ports. If
you want set up say COM1-COM4, then COM8-COM9, you can run more than one
copy:
BPQHTNC2 4 1 1
BPQHTNC2 2 8 5 (Four BPQHOST ports have been used by first)
There is some overhead in running two copies, so in general it would be
better to rearrange the applications to use a contiguous set of COM ports.
The last parameter will normally be 1. Only if you are using BPQ Host ports
for other software (eg FBB, TERM4, DEDHOST), or are running more than one copy
of BPQHTNC2, will it need changing.
Please note that BPQHTNC2 reads BPQCFG.BIN to find what interrupt to use
to talk to the switch, and to get the default value for PACLEN. BPQCFG.BIN
must therefore be in the current directory when BPQHTNC2 is loaded.
The following commands are supported by BPQHTNC2:
CONOK ON/OFF - Indicates the port is available for use. By default, it
will be for the BBS application. See APPL comand.
APPL - Bit significant field, to indicate which application the
port is supporting. The first three are reserved for BBS,
connects to the SYSOP (HOST support), and remote SYSOP
facilities. The other 5 are available for you to define your
own application servers (eg DATABASE, UNIX gateway).
Default is 01, the BBS.
To allow users to connect to you (using the C command
from the switch without a param), set APPL=02, and CONOK ON
BBSMON ON/OFF - Reduces the monitor output to calls only (enough to maintain
the JA list). Place in the MBL config file startup section.
MTX ON/OFF - Monitors transmitted frames - mainly used for debugging
MONITOR ON/OFF - As in normal TNC
MALL ON/OFF
MCOM ON/OFF
MCON ON/OFF Note that to monitor whilst connected to the Node, you
need MCON ON
MMASK - Selects which (radio) ports will be monitored. A bit
significant field - setting bit 0 allows monitoring of
the first port, bit 1 the second, and so on. Default is
hex FF, monitoring all radio ports. Setting it to zero
will suppress all monitoring.
The monitor code will decode and display the network headers from messages
between nodes. This enables you to see what routes are being used between
nodes, as well as removing a lot of garbage from the monitor display!
NOMODE ON/OFF The next 2 are accepted, but are not fully implemented. In
NEWMODE ON/OFF general BBS connects assume NOMODE on, others NOMODE off.
CONNECT
To connect to the node, use the command NODE (or K). This is equivalent to
connecting to a normal node. There is a (roughly) equivalent command
C SWITCH, which returns the string *** CONNECTED to SWITCH, and is used
in MBL forward files, as the MBL software is expecting the first connect
to be at Level 2. A Connect command without a parameter returns the
current state, again mainly for use by MBL software. A connect with any other
parameter connects to the Node, then passes the command to the Node's command
processor, thus allowing you to enter a normal Connect from either TNC or NODE
command level.
CONV
TRANS
UNPROTO CALL [VIA CALL ...]
BTEXT
The CONV and TRANS command enter the appropriate state, and if not connected
to the Node, allow you to send UI frames. This is used for the MBL 'Mail for
xxxx' broadcasts, and can be used for CQ's , etc. Beaconing is not supported,
but the BTEXT text is saved, and may be send instead of the predefined ID
message at intervals. This is primarily for RLI 'MAIL' beacons.
Note that K is an abbreviation for NODE, not CONV, as in a normal TNC, as
normally you want to switch easily between TNC command and Node command modes.
SENDPAC
CPACTIME
CR - As normal TNC.
FLOW ON/OFF - Similar to normal TNC, but a bit simpler. in particular
echoing is suppressed, so if you need to use FLOW ON, I
suggest you set ECHO OFF
Background information on INT14 Drivers.
Both BPQHTNC2 and BPQHKISS emulate the COMBIOS/MBBIOS interface used by
WA7MBL, AA4RE and others.
The following contains information extracted from AA4RE's MBBIOS
Documentation. It has been modified to conform to my COMBIOS
emulation.
MBBIOS supports the standard INT 14 calls plus the extended ones as
defined by Jeff Jacobsen, WA7MBL for his BBS program. These are
explained below. AH=0 to AH=3 are identical to the IBM BIOS definition.
DX must contain the port number, which start at zero, so for COM1 set
DX=0, COM2 set DX=1, etc.
AH = 0 Initialize
---------------------
This is provided for compatibility only. It has no effect except to
return the current (virtual) LSR in AH, bit zero of which is set if
any characters remain in the rx buffer, and virtual MSR in AL.
The MSR bits supported are DCD=Connected
CTS=Not busy
An attempt is also made to maintain delta bits
BIT 7 - Receive Line Signal Detect (DCD)
6 - Ring Indicator (Not supported)
5 - Data Set Ready (Always on)
4 - Clear To Send
3 - Delta RLSD ( ie state has changed since last
access)
2 - Not Supported (Trailing Edge Ring Detect)
1 - Not Supported (Delta DSR)
0 - Delta CTS
AH = 1 Send Character
-------------------------
AL contains the character to send. Return values are the same as above.
AH = 2 Receive Character
----------------------------
On return, AL contains the character received. AH contains the
virtual LSR. Again, AH bit 0 indicates if there is additional characters
in the buffer. This routine does NOT timeout while waiting for a character
but will hang indefinitely waiting for a character to appear.
AH = 3 Return Status
------------------------
Return values are the same as returned by the Initialize routine.
AH = 4 Inquiry
------------------
Returns AX and BX set to 0AA55H. This call is used to see if the
particular port is defined in TNCPORTLIST. Note that COMBIOS/MBBIOS
set AX, but not BX
AH = 5 Drop RTS
-------------------
This drops (virtual) DTR and RTS. Will stop higher level code sending
any more data into the receive buffer. No return value.
AH = 6 Raise RTS
--------------------
Raise DTR and RTS. No return value.
AH = 7 Send Break
---------------------
Generates a "Break". Returns the virtual TNC to Command mode from Converse
or Transparent mode. No return value.
AH = 8 Non-destructive Read
-------------------------------
Returns the next character in the buffer in AL without removing it from
the buffer. AH value defined as in AH=2 so you can use the Data Ready
bit to check to see if you really did get a character.
AH = 9 Set/Get options
--------------------------
Not implemented.
AH = A Write buffer
-----------------------
Sends CX characters starting at DI:ES. Upon return, DI will be updated
and CX will contain the unsent character count. Unsent characters could
result from either BUFFER FULL or hardware handshake is OFF. AX will
be set as in AH=3 (Status) above.
AH = B Read buffer
------------------
Receives up to CX characters starting at DI:ES. Upon return, CX set to
actual count read and DI is updated. If the buffer is empty, return is
immediate with CX = 0. The function will return a 'logical' line, up
to a CR in normal mode, or 17H in Host Mode. On return, AL contains the MSR
and AH has the virtual LSR. Again, AH bit 0 indicates if there are additional
characters in the buffer.
AH = 1F - G8BPQ NODE-SPECIFIC COMBIOS EXTENTIONS
------------------------------------------------
AL = 0 - Return Version and Node DS
Returns: AX=Node data segment
DH=Major Version
DL=Minor Version - ie for version 3.50, DH=3, DL=50
AL = 1 - Return ES:SI pointing to connected call (in AX25 firm), or
SI=0 if not connected. If connected, returns session type
in AH, and port number (if L2 session) in AL. Session
type is a bit significant field defined as follows:
;
; CIRCUITTYPE EQUATES
;
L2LINK EQU 1
SESSION EQU 10B
UPLINK EQU 100B
DOWNLINK EQU 1000B
HOST EQU 10000B
AL = 2 Return (in AH) number of unacked packets on connection.
Some versions (pre-4.05f) incorrectly returned the value
in AL instead of AH. To maintain compatibility with software
written to allow for this, the value is now returned in AL
as well as AH.
AL = 3 (Versions 4.05f and later)
Set PACLEN to the value recommended by the node. This will
initially be derived from the type of connect (ie L2 or L4),
and the port used (if L2). Eventually it will be varied to
optimise throughput, based on link performance.
AL = 10H Disconnect user form virtual TNC, and return user to Node
The segment registers are saved, (unless retuning a value), but other
registers may be destroyed.
WA8DED Host Mode Interface for G8BPQ Switch.
A facility has been developed to allow applications which normaly operate
in DED Host Mode, using a DRSI card and the DRSI support routine TNCTSR,
to be used with my switch code. An external interface routine DEDHOST.COM
is used to emulate the DRSI support routine TNCTSR. DEDHOST must be run after
BPQCODE. If running with Desqview, DEDHOST should be run in the same window
as the application. Version 4.01 (or higher) of BPQCODE is required. Note that
my code emulates a single DSRI port - multiple comms links may be connected to
the switch, but as far as the application software is concerned, there is a
single (virtual) link to the switch, capable of supporting up to 32 sessions.
DEDHOST.COM requires 5 parameters, all are decimal numbers. A 6th is optional
- if present, it is a single character. Parameters are:
Number of Streams.
This defines the maximum number of simultaneous users. The maximum is 32.
Start Stream.
The first stream number to use. The switch supports 64 streams. You must
ensure that each application running with the switch uses a different range
of streams.
Application.
The number allocated to this application in the APPLICATIONS param of
BPQCFG.TXT. Will normally be 1 if running a BBS or similar system.
Buffer Space.
The space to be allocated for buffering messages. You can specify up to 60
(Kilobytes). The program will allocate a minimum of 8k even if you specify
less. The space needed will depend on your traffic, and the software you are
using. I suggest you allocate as much as you can spare. If the application
then runs short of memory, you will have to experiment to find the optimum
value for your installation.
Interrupt Number.
The Interrupt used by the application to communicate with DEDHOST. Will be
255, unless you need to use that for some other software.
Autotimer Flag.
Normally the driver is configured to request the switch to send a message
after 11 minutes without activity on each stream. This is so that
PacketCluster users may remain connected during perions of low activity. If
you dont want this facility, or are not using Packetcluster, set parameter to
'N'. If you omit the parameter, or enter any other value, it will be enabled.
A typical command line would be DEDHOST 32 1 1 60 255 Y
Please note that DEDHOST reads BPQCFG.BIN to find what interrupt to use
to talk to the switch. BPQCFG.BIN must therefore be in the current directory
when DEDHOST is loaded.
NOS/BPQ Link - NODEDRV4.COM
The 'Packet Driver' I wrote to allow NOS to communicate with the switch
has been modified to use the BPQ Host mode interface. One copy of the
packet driver is needed for each radio port to be used by NOS, plus one
for the loopback port if you want NOS to be able to talk to the switch.
I dont have a lot of experience of using NOS, but I suggest that if you
are using TCP/IP over NETROM that you use the lookback port, and let the
switch handle all the radio links. Only if you are using IP in datagram
or ax.25 virtual circuit mode will you need to give NOS direct access to
the radio ports.
Please note that you need at least version 4.03 of BPQCODE.EXE
The following is an extract from my system. You will need to tailor
it to your own requirements.
If using Desqview, NODEDRV4 must be loaded in the same window as NOS -
if you put it under desqview the system will probably crash. It takes
three parameters, the software interrupt number used by NOS to communicate
with it (in the range 60-7f hex), the BPQ Host port to use to talk to the
switch (1 - 63), and the number of the radio port to be accessed.
Please note that NODEDRV4 reads BPQCFG.BIN to find what interrupt to use
to talk to the switch. BPQCFG.BIN must therefore be in the current directory
when NODEDRV4 is loaded.
STARTNOS.BAT
nodedrv4 0x61 33 1 I am using BPQHost ports 33-35, as I use
nodedrv4 0x62 34 2 the first 32 for a PacketCluster Node.
nodedrv4 0x63 35 3 I have given NOS access to 2 radio ports,
nos and a loopback port to the switch.
This is the 'attach' bit of AUTOEXEC.NET. I can't see where the parameter
following the interface name is used, but the code suggests it is the
maximum length of the transmit queue. The next param is the MTU.
#
attach packet 61 ax1 5 256 Radio Port 1
attach packet 62 ax2 5 256 Radio Port 2
attach packet 63 node 5 236 Loopback link to the switch
#
This is a new facility, and there is very little local IP activity for
me to try it with. Any feedback would be most welcome, both on problems
and suggestions on how best to set up the system.